/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package funcion;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Date;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import model.*;
import com.lowagie.text.Document;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
import java.util.List;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

public class GeneratePDF {

    public static void hacerpdf (Viaje via, List sug, List usuario) {
        try {
            OutputStream file = new FileOutputStream(new File("pdfviaje.pdf"));

            Document document = new Document();
            PdfWriter.getInstance(document, file);
            document.open();
            document.add(new Paragraph("Itinerario del Viaje "+via.getNombre()));
            document.add(new Paragraph("--Fecha de Salida: "+via.getFechaLlegada()));
            document.add(new Paragraph("--Fecha de Llegada: "+via.getFechaPartida()));
            document.add(new Paragraph("--Sitio de Alojamiento: "+via.getSitioAlojamiento()));
            document.add(new Paragraph("Lugares a Visitar en el viaje"));
            for (int i = 0; i < sug.size(); i++){
               SugerenciaViaje s;
               s = (SugerenciaViaje) sug.get(i);
               document.add(new Paragraph("--"+i+". Destino de viajes es: "+s.getNombre()));
            }
            document.add(new Paragraph("hayTour la mejor manera de viajar..."));
            document.add(new Paragraph(new Date().toString()));
            document.close();
            file.close();

            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", "haytour.viajes@gmail.com");
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
           for (int i = 0; i < usuario.size(); i++){
                   Usuario us;
                   us = (Usuario) usuario.get(i);
                   MimeMessage message = new MimeMessage(session);
                   message.setFrom(new InternetAddress("haytour.viajes@gmail.com"));
                   message.addRecipient(
                   Message.RecipientType.TO,
                        new InternetAddress("geralzerpa@gmail.com"));
                    message.setSubject("Itinerario de Viaje");
                    message.setText("PDF");
                    File path = new File ("pdfviaje.pdf");
                    message.setDataHandler(new DataHandler(new FileDataSource(path)));
                    message.setFileName("pdfviaje.pdf");
                    // Lo enviamos.
                    Transport t = session.getTransport("smtp");
                    t.connect("haytour.viajes@gmail.com", "haytour2010");
                    t.sendMessage(message, message.getAllRecipients());

                    System.out.println("Final");

                    // Cierre.
                    t.close();
            }
        } catch (Exception e) {

            e.printStackTrace();
        }
    }
}

